/*************************************************************************
> File Name: greedy.cpp
> Author: icebear
> Mail: 3322366195@qq.com
> Created Time: 2024-01-12 22:04:13
> Description:
121. 买卖股票的最佳时机

给定一个数组 prices ，它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票，并选择在 未来的某一个不同的日子 卖出该股票。
设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润，返回 0 。
************************************************************************/

// 思路：
// 记录 i 天前的最低购入价
// 记录 i 天前的最高利润

#include <vector>
using namespace std;

class Solution
{
public:
    int maxProfit(vector<int> &prices)
    {
        if (prices.size() < 2)
        {
            return 0;
        }
        int cost = prices[0], profit = 0;
        for (int price : prices)
        {
            if (price < cost)
            {
                cost = price;
            }
            else if ((price - cost) > profit) // 购买价格低的时候，不会出售 elif
            {
                profit = (price - cost);
            }
        }
        return profit;
    }
};
